//
// Created by bobin on 18-7-7.
//

#ifndef ORB_SLAM2_MAPREUSE_PROTOUTIL_H
#define ORB_SLAM2_MAPREUSE_PROTOUTIL_H

#include <opencv2/core/core.hpp>
#include "map.pb.h"

namespace ORB_SLAM2 {
    class ProtoUtil {
    public:
        ProtoUtil();

        static void DoubleMatToMessage(const cv::Mat &mat, common::proto::MatrixXd *mat_pro);

        static void MessageToMat(const common::proto::MatrixXd &mat_pro, cv::Mat &mat);

        static void UcharMatToMessage(const cv::Mat &mat, common::proto::MapPoint *mp_pro);

        static void MessageUcharMat(const common::proto::MapPoint &mp_pro, std::string &desc);
    };
}

#endif //ORB_SLAM2_MAPREUSE_PROTOUTIL_H
